const {join} = require("path");
const {appendFile} = require('fs');

module.exports = (action, config={}) => {
    const logDir = join(__dirname, '../../', 'log.txt');
    let logContent;
    const curTime = new Date().toString();
    switch (action) {
        case 'upload': {
            logContent = `${curTime}： 用户${config.username} 上传了图片 ${config.filename}\n`;
            break;
        }

        case 'register': {
            logContent = `${curTime}： 用户${config.username} 使用邮箱${config.mail} 完成注册\n`;
            break;
        }

        case 'login': {
            logContent = `${curTime}： 用户${config.username} 登录\n`;
            break;
        }

        case 'logoff': {
            logContent = `${curTime}： 用户${config.username} 注销了账号\n`;
            break;
        }

        case 'lock': {
            if (config.success) {
                logContent = `${curTime}： 用户${config.username} 被锁定， 锁定原因：${config.reason} \n`;
            } else {
                logContent = `${curTime}： 用户${config.username} 应被锁定，但锁定失败\n`;
            }
            break;
        }

        case 'edit': {
            const newInfo = config.newInfo ? '，修改为：' + config.newInfo : '';
            logContent = `${curTime}： 用户${config.username} 修改了${config.info}${newInfo} \n`;
            break;
        }

        case 'request': {
            logContent = `${curTime}： 用户${config.username} 请求了${config.req} \n`;
            break;
        }

        case 'updateFriends': {
            logContent = `${curTime}: 用户${config.username} 更新了好友列表，当前好友为：${config.friends} \n`;
            break;
        }

        case 'err': {
            logContent = `${curTime}： [ERROR]: ${config.err.message}\n`;
            break
        }
        default: {
            logContent = `${curTime}： 写入了无效指令\n`;
        }
    }
    appendFile(logDir, logContent, (err) => {
        if (err) console.log(err);
    })
}